package code.c02_list.linkList;

import code.c02_list.linkList.LinkListClass;
import code.c02_list.clinkList.LinkNode;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/9/18 19:09
 * @package code.c02_list.classwork.examples
 * @description 有两个递增有序整数单链表A 和B，设计一个算法采用二路归并方法将A和B中所有的数据节点
 * 合并到递增有序单链表C 中。
 */

public class Exam_2_16 {
    public static LinkListClass<Integer> merge(LinkListClass<Integer>A,LinkListClass<Integer> B){
        LinkNode<Integer> p = A.head.next;
        LinkNode<Integer> q = B.head.next;

        LinkListClass<Integer> C = new LinkListClass<>();
        LinkNode<Integer> t = C.head;

        while (p != null && q!=null){
            if (p.data < q.data){
                t.next = p;
                t = p;
                p =p.next;
            }else{
                t.next = q;
                t =q;
                q =q.next;
            }
        }

        t.next = null;
        if (p!=null){
            t.next = p;
        }if (q!=null){
            t.next = q;
        }

        return C;


    }
}
